package com.command.center.pucms.pucmsgateway.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.*;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 功能表
 * </p>
 *
 * @author zlb
 * @since 2021-04-23
 */
@Builder
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@TableName("pucms_t_function_info")
public class Function extends Model<Function> {

    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId("id")
    private String id;
    /**
     * 冗余smp guid
     */
    @TableField("guid")
    private String guid;
    /**
     * 功能编号
     */
    @TableField("op_code")
    private String opCode;
    /**
     * 父节点功能编号，root节点的该字段值为0
     */
    @TableField("parent_code")
    private String parentCode;
    /**
     * 操作url
     */
    @TableField("op_url")
    private String opUrl;

    /**
     * 授权
     */
    @TableField("op_perms")
    private String opPerms;

    /**
     * 图标样式
     */
    @TableField("icon_class")
    private String iconClass;

    /**
     * 1可用0不可用
     */
    @TableField("enabled")
    private String enabled;

    /**
     * 功能菜单数字倒叙排序
     */
    @TableField("fun_order")
    private Integer FunOrder;

    /**
     * 创建人
     */
    @TableField("create_user")
    private Integer createUser;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @TableField("update_user")
    private Integer updateUser;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 乐观锁
     */
    @TableField("revision")
    private Long revision;

    /**
     * 功能菜单名称
     * todo 功能表需添加名称
     */
    @TableField("fun_name")
    private String funName;


    /**
     * 菜单类型，1：菜单  2：业务按钮
     * todo 考虑添加菜单类型
     */
    @TableField("func_type")
    private Integer funcType;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
